package com.dxb.test.sort;

/**
 * ClassName：com.dxb.test.sort.SortBase <br>
 * Description：TODO <br>
 *
 * @author 戴晓波 <br>
 * Date 2021/9/30/030 10:03 <br>
 * @version v1.0 <br>
 */
public abstract class BaseSort {
    int[] array;
    int length;

    public BaseSort(int[] array) {
        this.array = array;
        this.length = array.length;
    }

    /**
     * 打印数组中的所有元素
     */
    public void display() {
        for (int i : array) {
            System.out.print(i + " ");
        }
        System.out.println();
    }

    /**
     * Title：sort <br>
     */
    public abstract void sort();

    public void run() {
        System.out.println("排序前的数据为：");
        display();
        sort();
        System.out.println("排序后的数据为：");
        display();
    }

    /**
     * 思想原理是：一个数异或同一个数两次，结果还是那个数，而且不会超出int范围
     */
    public void swap(int index, int index2) {
        if (index == index2) {
            return;
        }
        array[index] = array[index] ^ array[index2];
        array[index2] = array[index] ^ array[index2];
        array[index] = array[index] ^ array[index2];
    }

}
